iT邦幫忙

2021 iThome 鐵人賽

DAY 14
0
AI & Data

然後模型就死在 Jupyter Notebook 了 (ಥ﹏ಥ)系列 第 14

[Day 14] Audit perfomance — 模型也要期末稽核༼ಢ_ಢ༽

  • 分享至 

  • xImage
  •  

It is only our conception of time that makes us call the Last Judgement by this name. It is, in fact, a kind of martial law. — Franz Kafka

前言

在前面的文章中,我們一直圍繞著建立模型的迭代實驗過程進行討論,也提到了一個能在產業環境表現良好的模型該達到什麼標準。
而當經過數次迴圈得到不錯的模型之後,其實還可以再做一次深度的錯誤分析來對系統進行最後評斷以確保它的可行性:
modeling iteration
*圖片修改自 MLEP, Selecting and training a model — Key challenges

那在最終評斷 (Final audit) 中還需要注意什麼呢?
讓我們看看其中有什麼眉角吧!!

Audit performance

通常高階指標 (Metric) 很容易把模型在某些特定資料上發生的問題隱藏起來,而對那些資料來說,不管高階指標表現多好,得到的預測值都會是很差的。
如果將這個模型部署到產品端,使用者體驗肯定也不會太好,因此在部署前最好再對模型表現進行一次深入的分析。

最終評斷的流程如下 (檢查準確度、公平性/偏見與其他問題):

  1. 集思廣益找出系統可能出錯的地方,例如檢視:

    • 在某些關鍵子集上的表現 (例如種族、性別)。
    • 特定錯誤類型出現的頻率 (例如 False Positive、False Nagative)。
    • 在罕見類別的表現。

    可以先從達成三個里程碑會遇到的問題開始檢查 (參考 [Day 09] 建立機器學習模型 — Andrew Ng 大神說要這樣做)。
    但實際上會出現的錯誤依產業別會有很大的不同,特別是對於公平性與偏見的標準還很不一致,所以要將這兩點考量銘記在心。
    以語音辨識為例,可以檢視:

    • 不同性別、種族的準確率。
    • 不同裝置的準確率。
    • 轉譯成粗口的發生頻率。
  2. 建立可以在這些錯誤發生時正確評判模型表現的指標,並施加在對應的資料子集上。
    以語音辨識為例,可以建立以下指標:

    • 不同性別與主要口音的平均準確率。
    • 不同裝置的平均準確率。
    • 輸出中含有粗口的頻率。

    找出適當的指標之後,MLOps 工具可以幫助我們自動觸發驗證流程,例如 TensorFlow Model Analysis (TFMA) 就能在不同資料子集上詳細計算各種指標。

  3. 說服老闆這些問題很值得擔心,以及這些指標可以用來解決問題。

TensorFlow Model Analysis

為了揪出被隱藏在高階指標之下的問題,可以使用 TensorFlow Model Analysis (TFMA) 針對模型在不同資料切片上的表現進一步分析,其粗略架構如下圖:
TFMA Architecture
*圖片來源:Tensorflow Model Analysis Architecture

TFMA Pipeline 由四個主要部件組合而成:

  • Read Inputs — 將原始輸入 (CSV、TFRecords 等) 轉換成下一個階段可以理解的字典格式 tfma.extracts
  • Extractors — 利用 Apache Beam 進行分散式處理,例如 SliceKeyExtractor 將原始資料集拆分成不同切片以供 PredictExtractor 進行預測,其結果再次以 tfma.extracts 字典的形式傳到下一個階段。
  • Evaluators — 同樣利用 Apache Beam 進行分散式處理,例如 MetricsAndPlotsEvaluator 會擷取所需的資料並搭配從前一階段收到的預測值來評估模型表現,這步驟可以使用多種 Evaluator,甚至可以自創符合需求的 Evaluator。
  • Write Results — 將結果寫入硬碟中。

可以發現 TFMA 其實跟我們比較熟悉的 TensorBoard 功能有點像,兩者都可以用來分析模型的表現,主要差別在於兩者進行運算的對象與時間點不同,這會造成用途上的差別如下:

  • During training vs after training
  • One model vs multiple models over time
  • Aggregate vs sliced metrics
  • Streaming vs full-pass metrics

而各個不同處的詳細解說請參考 Introducing TensorFlow Model Analysis,但從以下示意圖就可以看出 TensorBoard 主要處理來自 checkpoints 的流動指標 (streaming metrics),而 TFMA 則專注於處理輸出的 SavedModel
TFMA vs Tensorboard
*圖片來源:Introducing TensorFlow Model Analysis

以上就是今天的內容啦,明天就是 Modeling 的最後一篇文章,要來講實驗管理,明天見囉。
/images/emoticon/emoticon08.gif

參考資料


上一篇
[Day 13] 資料增強 — 我全都要.jpg
下一篇
[Day 15] ML 實驗管理 — 翻開覆蓋的陷阱卡~ 記帳小本本!
系列文
然後模型就死在 Jupyter Notebook 了 (ಥ﹏ಥ)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言